package com.mrogrape.notepad.activity.entity;

import java.io.Serializable;

public class ViewSettings implements Serializable {

	/** serialVersionUID */
	private static final long serialVersionUID = 1L;

	private Boolean showLibraryView;
	private Boolean stateBarVisible;
	private Boolean lineNumberVisible;
	private Boolean lineWrap;
	private Boolean whiteSpaceVisible;
	private Boolean EOLMarkVisible;
	private Boolean heightLightSecondaryLanguage;
	private Boolean markOccurrences;
	private Boolean codeFoldingEnabled;
	private Boolean hyperlinksEnabled;
	private Boolean autoIndentEnabled;
	private Boolean closeCurlyBraces;
	private Boolean closeMarkupTags;

	public ViewSettings() {
		this.initialize();
	}

	public Boolean isStateBarVisible() {
		if (this.stateBarVisible == null) {
			this.initialize();
		}
		return this.stateBarVisible;
	}

	public void setStateBarVisible(Boolean stateBarVisible) {
		this.stateBarVisible = stateBarVisible;
	}

	public Boolean isLineNumberVisible() {
		if (this.lineNumberVisible == null) {
			this.initialize();
		}
		return this.lineNumberVisible;
	}

	public void setLineNumberVisible(Boolean lineNumberVisible) {
		this.lineNumberVisible = lineNumberVisible;
	}

	public Boolean isLineWrap() {
		if (this.lineWrap == null) {
			this.initialize();
		}
		return this.lineWrap;
	}

	public void setLineWrap(Boolean lineWrap) {
		this.lineWrap = lineWrap;
	}

	public Boolean isWhiteSpaceVisible() {
		if (this.whiteSpaceVisible == null) {
			this.initialize();
		}
		return this.whiteSpaceVisible;
	}

	public void setWhiteSpaceVisible(Boolean whiteSpaceVisible) {
		this.whiteSpaceVisible = whiteSpaceVisible;
	}

	public Boolean isEOLMarkVisible() {
		if (this.EOLMarkVisible == null) {
			this.initialize();
		}
		return this.EOLMarkVisible;
	}

	public void setEOLMarkVisible(Boolean eofMarkVisible) {
		this.EOLMarkVisible = eofMarkVisible;
	}

	public Boolean isHeightLightSecondaryLanguage() {
		if (this.heightLightSecondaryLanguage == null) {
			this.initialize();
		}
		return this.heightLightSecondaryLanguage;
	}

	public void setHeightLightSecondaryLanguage(
			Boolean heightLightSecondaryLanguage) {
		this.heightLightSecondaryLanguage = heightLightSecondaryLanguage;
	}

	public Boolean isMarkOccurrences() {
		if (this.markOccurrences == null) {
			this.initialize();
		}
		return this.markOccurrences;
	}

	public void setMarkOccurrences(Boolean markOccurrences) {
		this.markOccurrences = markOccurrences;
	}

	public Boolean isCodeFoldingEnabled() {
		if (this.codeFoldingEnabled == null) {
			this.initialize();
		}
		return this.codeFoldingEnabled;
	}

	public void setCodeFoldingEnabled(Boolean codeFoldingEnabled) {
		this.codeFoldingEnabled = codeFoldingEnabled;
	}

	public Boolean isHyperlinksEnabled() {
		if (this.hyperlinksEnabled == null) {
			this.initialize();
		}
		return this.hyperlinksEnabled;
	}

	public void setHyperlinksEnabled(Boolean hyperlinksEnabled) {
		this.hyperlinksEnabled = hyperlinksEnabled;
	}

	public Boolean isAutoIndentEnabled() {
		if (this.autoIndentEnabled == null) {
			this.initialize();
		}
		return this.autoIndentEnabled;
	}

	public void setAutoIndentEnabled(Boolean autoIndentEnabled) {
		this.autoIndentEnabled = autoIndentEnabled;
	}

	public Boolean isCloseCurlyBraces() {
		if (this.closeCurlyBraces == null) {
			this.initialize();
		}
		return this.closeCurlyBraces;
	}

	public void setCloseCurlyBraces(Boolean closeCurlyBraces) {
		this.closeCurlyBraces = closeCurlyBraces;
	}

	public Boolean isCloseMarkupTags() {
		if (this.closeMarkupTags == null) {
			this.initialize();
		}
		return this.closeMarkupTags;
	}

	public void setCloseMarkupTags(Boolean closeMarkupTags) {
		this.closeMarkupTags = closeMarkupTags;
	}

	private void initialize() {

		this.showLibraryView = true;
		this.stateBarVisible = true;
		this.lineNumberVisible = true;
		this.lineWrap = false;
		this.whiteSpaceVisible = false;
		this.EOLMarkVisible = false;
		this.heightLightSecondaryLanguage = true;
		this.markOccurrences = false;
		this.codeFoldingEnabled = true;
		this.hyperlinksEnabled = false;
		this.autoIndentEnabled = true;
		this.closeCurlyBraces = false;
		this.closeMarkupTags = true;
	}

	/**
	 * @param showLibraryView the showLibraryView to set
	 */
	public void setShowLibraryView(Boolean showLibraryView) {
		
		this.showLibraryView = showLibraryView;
	}

	/**
	 * @return the showLibraryView
	 */
	public Boolean getShowLibraryView() {
		
		if (this.showLibraryView == null) {
			this.initialize();
		}
		return this.showLibraryView;
	}
}
